From ff3e88f816e3e4d35cb0483b786f8e209dbf7ff7 Mon Sep 17 00:00:00 2001 From: "kfraser@localhost.localdomain" Date: Wed, 11 Jul 2007 17:57:47 +0100 Subject: [PATCH] Convert __init into __devinit in wakeup path. Need to ensure all the code slice in the wakeup path still existing. For this purpose, we have to use __devinit instead of __init, since the former is null for CONFIG_HOTPLUG while the latter always causes related code to be free-ed after first boot. Later when adding __init to some function, be sure to consider wakeup case and cpu hotplug! Signed-off-by --- xen/arch/x86/apic.c | 2 +- xen/arch/x86/i8259.c | 2 +- xen/arch/x86/nmi.c | 2 +- xen/arch/x86/x86_32/traps.c | 2 +- xen/arch/x86/x86_64/traps.c | 2 +- xen/drivers/char/ns16550.c | 4 ++-- xen/drivers/char/serial.c | 4 ++-- 7 files changed, 9 insertions(+), 9 deletions(-) diff --git a/xen/arch/x86/apic.c b/xen/arch/x86/apic.c index 3c6a14d43c..7edccb44b4 100644 --- a/xen/arch/x86/apic.c +++ b/xen/arch/x86/apic.c @@ -957,7 +957,7 @@ void __setup_APIC_LVTT(unsigned int clocks) apic_write_around(APIC_TMICT, clocks/APIC_DIVISOR); } -static void __init setup_APIC_timer(unsigned int clocks) +static void __devinit setup_APIC_timer(unsigned int clocks) { unsigned long flags; local_irq_save(flags); diff --git a/xen/arch/x86/i8259.c b/xen/arch/x86/i8259.c index ecda0f1212..b02606af39 100644 --- a/xen/arch/x86/i8259.c +++ b/xen/arch/x86/i8259.c @@ -336,7 +336,7 @@ int i8259A_suspend(void) return 0; } -void __init init_8259A(int auto_eoi) +void __devinit init_8259A(int auto_eoi) { unsigned long flags; diff --git a/xen/arch/x86/nmi.c b/xen/arch/x86/nmi.c index f226e90a12..2bf72d1f8f 100644 --- a/xen/arch/x86/nmi.c +++ b/xen/arch/x86/nmi.c @@ -202,7 +202,7 @@ void release_lapic_nmi(void) enable_lapic_nmi_watchdog(); } -#define __pminit __init +#define __pminit __devinit /* * Activate the NMI watchdog via the local APIC. diff --git a/xen/arch/x86/x86_32/traps.c b/xen/arch/x86/x86_32/traps.c index ebd174deb7..5b391d60c1 100644 --- a/xen/arch/x86/x86_32/traps.c +++ b/xen/arch/x86/x86_32/traps.c @@ -232,7 +232,7 @@ unsigned long do_iret(void) return 0; } -void __init percpu_traps_init(void) +void __devinit percpu_traps_init(void) { struct tss_struct *tss = &doublefault_tss; asmlinkage int hypercall(void); diff --git a/xen/arch/x86/x86_64/traps.c b/xen/arch/x86/x86_64/traps.c index 7a9c2c11bf..ad4577ad55 100644 --- a/xen/arch/x86/x86_64/traps.c +++ b/xen/arch/x86/x86_64/traps.c @@ -285,7 +285,7 @@ static int write_stack_trampoline( return 34; } -void __init percpu_traps_init(void) +void __devinit percpu_traps_init(void) { char *stack_bottom, *stack; int cpu = smp_processor_id(); diff --git a/xen/drivers/char/ns16550.c b/xen/drivers/char/ns16550.c index 972eb6c05d..4b37656270 100644 --- a/xen/drivers/char/ns16550.c +++ b/xen/drivers/char/ns16550.c @@ -170,7 +170,7 @@ static int ns16550_getc(struct serial_port *port, char *pc) return 1; } -static void __init ns16550_init_preirq(struct serial_port *port) +static void __devinit ns16550_init_preirq(struct serial_port *port) { struct ns16550 *uart = port->uart; unsigned char lcr; @@ -214,7 +214,7 @@ static void __init ns16550_init_preirq(struct serial_port *port) port->tx_fifo_size = 16; } -static void __init ns16550_init_postirq(struct serial_port *port) +static void __devinit ns16550_init_postirq(struct serial_port *port) { struct ns16550 *uart = port->uart; int rc, bits; diff --git a/xen/drivers/char/serial.c b/xen/drivers/char/serial.c index bb196ace10..921606454a 100644 --- a/xen/drivers/char/serial.c +++ b/xen/drivers/char/serial.c @@ -348,7 +348,7 @@ int serial_tx_space(int handle) return SERIAL_TXBUFSZ - (port->txbufp - port->txbufc); } -void __init serial_init_preirq(void) +void __devinit serial_init_preirq(void) { int i; for ( i = 0; i < ARRAY_SIZE(com); i++ ) @@ -356,7 +356,7 @@ void __init serial_init_preirq(void) com[i].driver->init_preirq(&com[i]); } -void __init serial_init_postirq(void) +void __devinit serial_init_postirq(void) { int i; for ( i = 0; i < ARRAY_SIZE(com); i++ ) -- 2.30.2